package com.evil.common.core.util;

import com.evil.common.core.enums.RCodeEnum;
import com.evil.common.core.exception.BusinessException;

/**
 * 参数断言
 *
 * @author liyang
 * @date 2022-08-08 00:00
 */
public class AssertParam {

    /**
     * 参数断言
     * 断言是否为真，如果为 {@code false} 抛出 {@link BusinessException} 异常
     *
     * @param expression 布尔值
     */
    public static void isTrue(boolean expression) {
        if (!expression) {
            throw new BusinessException(RCodeEnum.ERROR_PARAMETER);
        }
    }

    /**
     * 参数断言
     * 断言是否为真，如果为 {@code false} 抛出 {@link BusinessException} 异常
     *
     * @param expression expression
     * @param message    message
     */
    public static void isTrue(boolean expression, String message) {
        if (!expression) {
            throw new BusinessException(RCodeEnum.ERROR_PARAMETER, message);
        }
    }

    /**
     * 参数断言
     * 断言是否为真，如果为 {@code false} 抛出 {@link BusinessException} 异常
     *
     * @param expression     expression
     * @param RCodeEnum RCodeEnum
     */
    public static void isTrue(boolean expression, RCodeEnum RCodeEnum) {
        if (!expression) {
            throw new BusinessException(RCodeEnum);
        }
    }
}
